package com.zegome.game.me;

import aurelienribon.tweenengine.Tween;
import aurelienribon.tweenengine.TweenManager;
import aurelienribon.tweenengine.equations.Quad;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
import com.zegome.game.util.helper.WidgetAccessor;

public class LazyLoadImage {
	public String link;
	public Image image;
	public String name;
	public boolean isFinish;
	public boolean isSending;
	public Texture texture;
	public TextureRegion region;
	// ===========================================================
	// Constants
	// ===========================================================

	// ===========================================================
	// Fields
	// ===========================================================
	
	public LazyLoadImage(Image image, String link, String name){		
		this.image = image;
		this.link = link;
		this.name = name;
		this.isFinish = false;
		this.isSending = false;		
	}
	
	public void load(TweenManager tween, final String dir){
		texture = new Texture(Gdx.files.external(dir/*"data/avatar/"*/+name));	
		region = new TextureRegion(texture);
		image.setDrawable(new TextureRegionDrawable(region));
		image.setColor(1f,1f,1f,0f);
		Tween.to(image, WidgetAccessor.OPACITY, 0.2f).target(1).ease(Quad.OUT).start(tween);		
	}
	
	public void unload(){
		if(texture!=null)
		texture.dispose();
		texture = null;
		region = null;
	}
	
	// ===========================================================
	// Constructor
	// ===========================================================

	// ===========================================================
	// Getter & Setter
	// ===========================================================

	// ===========================================================
	// Methods for/from SuperClass/Interfaces
	// ===========================================================

	// ===========================================================
	// Methods
	// ===========================================================

	// ===========================================================
	// Inner and Anonymous Classes
	// ===========================================================	
}
